<?php

namespace Model;

class RegisterHandler{
			
	private $m_db = NULL;
        
    public function __construct(Database $db) {
            $this->m_db =$db;
    }
	
	public function RegisterNewUser($username, $password){
		
		if($this->DoRegister($username, $password)){

			return true;
		}
		
		return false;
	}
	//Registera ny användare
	public function DoRegister($username, $password){
		
		$sql = "INSERT INTO user(m_username, m_password) VALUES (?,?)";
		
		$stmt = $this->m_db->Prepare($sql);
		
		$stmt->bind_param("ss", $username, $password);
		
		$insertId = $this->m_db->RunInsertQuery($stmt);
		
		return true; 
	}
	
	//Kolla om användarnamnet redan är taget
	public function UserExist($username){
			
		$sql = "SELECT m_username FROM user WHERE m_username=?";
	  			
		$stmt = $this->m_db->Prepare($sql);
		
        $stmt -> bind_param("s", $username);
		
		$stmt -> execute();
            
		if ($stmt->bind_result($username) == FALSE) {
                throw new \Exception($this->mysqli->error);
        }

        while ($stmt->fetch()) {
                return true;
				$stmt -> close();
        } 
        return false;
        $stmt -> close();
			
	}
	
	public static function Test(Database $db){
		
		$sut = new RegisterHandler($db);	
		
		//Test DoRegister
		
		if ($sut->RegisterNewUser("Steve", "password")==false) {
			echo "fel vid RegisterNewUser";
		}
		//Test UserExist
		//Test med användare som finns 
		if($sut->UserExist("Stina")==false){
			echo "Fel vid UserExist";
			return false;
		}
		//Test med användare som inte finns 
		if($sut->UserExist("Gullan")==true){
			echo "Fel vid UserExist";
			return false;
		}
		
		return true;
	}
}
